package com.example.aiquestions.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "ai")
public class AIConfig {
    private Deepseek deepseek;
    private Kimi kimi;
    private Qianwen qianwen;
    private String defaultModel;
    private String apiUrl;


    public static class Deepseek {
        private String apiKey;
        private String apiUrl;
        private String model;
        private Integer maxTokens;
        private Float temperature;
        private Boolean stream;
        private String streamApiUrl;

        // Getters and Setters

        public String getStreamApiUrl() {
            return streamApiUrl;
        }

        public void setStreamApiUrl(String streamApiUrl) {
            this.streamApiUrl = streamApiUrl;
        }

        public String getApiKey() {
            return apiKey;
        }

        public void setApiKey(String apiKey) {
            this.apiKey = apiKey;
        }

        public String getApiUrl() {
            return apiUrl;
        }

        public void setApiUrl(String apiUrl) {
            this.apiUrl = apiUrl;
        }

        public String getModel() {
            return model;
        }

        public void setModel(String model) {
            this.model = model;
        }

        public Integer getMaxTokens() {
            return maxTokens;
        }

        public void setMaxTokens(Integer maxTokens) {
            this.maxTokens = maxTokens;
        }

        public Float getTemperature() {
            return temperature;
        }

        public void setTemperature(Float temperature) {
            this.temperature = temperature;
        }

        public Boolean getStream() {
            return stream;
        }

        public void setStream(Boolean stream) {
            this.stream = stream;
        }
    }

    public static class Kimi {
        private String apiKey;
        private String apiUrl;
        private String model;
        private Integer maxTokens;
        private Float temperature;
        private Boolean stream;
        private String streamApiUrl;

        // Getters and Setters

        public String getStreamApiUrl() {
            return streamApiUrl;
        }

        public void setStreamApiUrl(String streamApiUrl) {
            this.streamApiUrl = streamApiUrl;
        }

        public String getApiKey() {
            return apiKey;
        }

        public void setApiKey(String apiKey) {
            this.apiKey = apiKey;
        }

        public String getApiUrl() {
            return apiUrl;
        }

        public void setApiUrl(String apiUrl) {
            this.apiUrl = apiUrl;
        }

        public String getModel() {
            return model;
        }

        public void setModel(String model) {
            this.model = model;
        }

        public Integer getMaxTokens() {
            return maxTokens;
        }

        public void setMaxTokens(Integer maxTokens) {
            this.maxTokens = maxTokens;
        }

        public Float getTemperature() {
            return temperature;
        }

        public void setTemperature(Float temperature) {
            this.temperature = temperature;
        }

        public Boolean getStream() {
            return stream;
        }

        public void setStream(Boolean stream) {
            this.stream = stream;
        }
    }

    public static class Qianwen {
        private String apiKey;
        private String apiUrl;
        private String model;
        private Integer maxTokens;
        private Float temperature;
        private Boolean stream;
        private String streamApiUrl;

        // Getters and Setters

        public String getStreamApiUrl() {
            return streamApiUrl;
        }

        public void setStreamApiUrl(String streamApiUrl) {
            this.streamApiUrl = streamApiUrl;
        }

        public String getApiKey() {
            return apiKey;
        }

        public void setApiKey(String apiKey) {
            this.apiKey = apiKey;
        }

        public String getApiUrl() {
            return apiUrl;
        }

        public void setApiUrl(String apiUrl) {
            this.apiUrl = apiUrl;
        }

        public String getModel() {
            return model;
        }

        public void setModel(String model) {
            this.model = model;
        }

        public Integer getMaxTokens() {
            return maxTokens;
        }

        public void setMaxTokens(Integer maxTokens) {
            this.maxTokens = maxTokens;
        }

        public Float getTemperature() {
            return temperature;
        }

        public void setTemperature(Float temperature) {
            this.temperature = temperature;
        }

        public Boolean getStream() {
            return stream;
        }

        public void setStream(Boolean stream) {
            this.stream = stream;
        }
    }

    // Getters and Setters
    public Deepseek getDeepseek() {
        return deepseek;
    }

    public void setDeepseek(Deepseek deepseek) {
        this.deepseek = deepseek;
    }

    public Kimi getKimi() {
        return kimi;
    }

    public void setKimi(Kimi kimi) {
        this.kimi = kimi;
    }

    public Qianwen getQianwen() {
        return qianwen;
    }

    public void setQianwen(Qianwen qianwen) {
        this.qianwen = qianwen;
    }

    public String getDefaultModel() {
        return defaultModel;
    }

    public void setDefaultModel(String defaultModel) {
        this.defaultModel = defaultModel;
    }

} 